package gui

import java.awt.BorderLayout
import java.awt.Dimension
import java.awt.FlowLayout
import java.awt.Font
import java.awt.GridLayout
import javax.imageio.ImageIO
import javax.swing.BoxLayout
import javax.swing.ImageIcon
import javax.swing.JLabel
import javax.swing.JPanel
import scala.swing.Component

/**
 * Bei diesem TabbedPane handelt es sich um ein
 * MyTabbedPane, wobei geoeffnete Tabs nicht vom
 * Benutzer geschlossen werden koennen. Diese 
 * Komponente wird fuer die Ausgabefenster im
 * unteren Bereich verwendet.
 */

class TabbedPaneNormal extends MyTabbedPane {
  
  var tabsDesc:Array[JLabel] = new Array(4)
  
  def addTab(title:String, com:Component, icon:String = null) = {
    var c = com.peer
    if(icon != null)
      peer.addTab(title, new ImageIcon(ImageIO.read(this.getClass().
                                                    getResource("/gui/img/" + icon))), c)
    else
      peer.addTab(title,c)
    var i = peer.getTabCount()-1
    
    //Tabgroesse fixieren
    var fixedSize = new Dimension(180,32)
    var tabJC = peer.setTabComponentAt(i, new JPanel(new GridLayout(0,1)){
        if(icon != null)
          add(new JLabel(title){this.setIcon(new ImageIcon(ImageIO.read(this.getClass().
                                                           getResource("/gui/img/" + icon))))})
        else
          add(new JLabel(title))
        var tmp = new JLabel(""){
          this.setFont(new Font(this.getFont().getName(),Font.ITALIC,this.getFont().getSize()))
        }
        add(tmp)
        tabsDesc(i) = tmp
        setPreferredSize(fixedSize)
        setMaximumSize(fixedSize)
        setOpaque(false)
      })
    peer.setFocusable(false)
    
    components.append(com)
  }
  
  def setTabFile(i: Int, s: String) : Unit = {
    tabsDesc(i).setText(s)
  }
  
  def getTabFile(i: Int) : String = {
    return tabsDesc(i).getText
  }
  
}


 